home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / dora / doraloop.plp < prev    next >
Text File  |  1993-11-30  |  19KB  |  602 lines

  1.  /*    端末属性を設定する    */
  2. %ESCset1{case    (ESCon={No},
  3.         {Yes},{wait(Wtime1,,{中止},{type({2|3\n})}
  4.                 ,{やめっ},{type({2|3\n})}
  5.                 ,{quit},{type({2|3\n})});
  6.             receive(LOG2|{アクセスdat\ゾクセイoff.DAT})
  7.         },
  8.         {No},{wait(Wtime1,,{中止},{type({2|1\n})}
  9.                 ,{やめっ},{type({2|1\n})}
  10.                 ,{quit},{type({2|1\n})});
  11.             receive(LOG2|{アクセスdat\ゾクセイ.DAT})
  12.         });
  13.     };
  14. %ESCset2{case    (ESCon={No},
  15.         {Yes},{wait(Wtime1,,{中止},{type({3|3\n})}
  16.                 ,{やめっ},{type({3|3\n})}
  17.                 ,{quit},{type({3|3\n})});
  18.             receive(LOG2|{アクセスdat\ゾクセイoff.DAT})
  19.         },
  20.         {No},{wait(Wtime1,,{中止},{type({3|1\n})}
  21.                 ,{やめっ},{type({3|1\n})}
  22.                 ,{quit},{type({3|1\n})});
  23.             receive(LOG2|{アクセスdat\ゾクセイ.DAT})
  24.         });
  25.     };
  26. %EDITset2{loop    ({    type({2\n});
  27.         wait(Wtime2,,{CRのみの送信に設定},{im({Yes})}
  28.             ,{CR/LFの送信に設定},{im({No})})
  29.         });
  30.     };
  31. %MODEset1{wait(Wtime1,,{中止},{type({3|3\n})},{やめっ},{type({3|3\n})}
  32.         ,{quit},{type({3|3\n})});
  33.     };
  34. %MODEset2{wait(Wtime1,,{中止},{type({4|3\n})},{やめっ},{type({3|3\n})}
  35.         ,{quit},{type({4|3\n})});
  36.     };
  37. %MOREset1{wait(Wtime1,,{中止},{type({4|0\n})},{やめっ},{type({4|0\n})}
  38.         ,{quit},{type({4|0\n})});
  39.     };
  40. %MOREset2{wait(Wtime1,,{中止},{type({5|0\n})},{やめっ},{type({4|0\n})}
  41.         ,{quit},{type({5|0\n})});
  42.     };
  43. %GENGOset1{wait(Wtime1,,{中止},{type({5|2\n})},{やめっ},{type({5|2\n})}
  44.         ,{quit},{type({5|2\n})});
  45.     wait(Wtime1,
  46.     ,{ESC削除},{wait(1);type({1\n});wait(Wtime1,,{中止},{type({\n})})}
  47.     ,{quit},{type({\n})}
  48.     ,{値が大きすぎます}
  49.         ,{wait(1);case    (ESCon={No},
  50.                 {Yes},{type({3\n})},
  51.                 {No},{type({1\n})});
  52.         });
  53.     };
  54. %ZOKU{var netTYPE[6];
  55.     wait(3);type({\n});type({I|D\n});dispoff(!DEBUG);
  56.     mkdir2(LOG2|{アクセスdat});dispoff({No});DOWNCHECK;
  57.     delfile(LOG2|{アクセスdat\ゾクセイ.DAT});
  58.     delfile(LOG2|{アクセスdat\ゾクセイoff.DAT});dispoff({No});
  59.     loop    ({    type({1\n});
  60.         wait(Wtime2,,{ベタエディタにしました},{im({Yes})}
  61.             ,{ラインエディタにしました},{im({No})}
  62.             ,{CRのみの送信に設定},{im({Yes})}
  63.             ,{CR/LFの送信に設定},{im({No})})
  64.         });
  65.     wait(Wtime2,,    {2 :ESCモード設定},{netTYPE:={normal}},
  66.             {2 :ESCモード設定},{netTYPE:={normal}},
  67.             {2 :ラインフィード設定},{netTYPE:={JCty}},
  68.             {2 :ラインフィード設定},{netTYPE:={JCty}});
  69.     case    (netTYPE,
  70.         {normal},{ESCset1;MODEset1;MOREset1;GENGOset1},
  71.         {JCty},{EDITset2;ESCset2;MODEset2;MOREset2});
  72.     wait(Wtime1,{type({\n})},{[RET]},{type({\n})});
  73.     wait(2);type({0\n});DOWNSTOP;DOWNSTART
  74.     };
  75. /*  アクセス毎にメモに書き込む処理 */
  76. %PLTMEMO{ 
  77.     footnote({メモ書き込み情報に「オートパイロットDORAでアクセス中」}|
  78.             {を登録します});wait(2);
  79.     type({\\\n});
  80.     wait(Wtime2,{type({オートパイロットDORAでアクセス中})},
  81.         {[RET]},{type({オートパイロットDORAでアクセス中})});
  82.     type({\n});wait(2)};
  83. /*  伝言板を見る */
  84.     %DENGON{type({G\n});
  85.     wait(Wtime2,,{中止},{},{おわり},{},{quit},{});
  86.     wait(Wtime2,,{>},{type({//\n})})};
  87. /*  伝言板を見る & 書く  */
  88.     %DENGONW{type({G\n});
  89.     wait(Wtime2,,{中止},{},{おわり},{},{quit},{});
  90.     wait(Wtime2,,{>},{type(@read(UP2|{\DENGO}));type({\n//\n})});
  91.     wait(Wtime2,,{,?,},{footnote({伝言ファイルを削除します  });
  92.     dispoff(!DEBUG);
  93.     delfile(UP2|{\DENGO});
  94.     dispoff({No});type({\n})});DOWNSTART};
  95. /*    メールを読む    */
  96. %NEWMAILL{
  97.     %nexT{wait(Wtime2,{type({\n})},{>},{type({\n})})};
  98.     %DELsyori{
  99.     loop    ({
  100.         wait    ({3},{im({Yes})}
  101.         ,{終り},{wait(Wtime2,{type({K\n})},{>},{type({K|Y\n})});
  102.             im({No})}
  103.         ,{quit},{wait(Wtime2,{type({K\n})},{>},{type({K|Y\n})});
  104.             im({No})}
  105.         ,{中止},{wait(Wtime2,{type({K|Y\n})},{>},{type({K|Y\n})});
  106.             im({No})}
  107.         )});
  108.     };
  109.     type({ML\n});wait(Wtime1,{type({\n})},{>},{type({\n})});
  110.     case(MAILDEL={Yes},{Yes},{type({T\n});
  111.     loop    ({
  112.         wait    ({3},{im({Yes})}
  113.             ,{DIRECTIVE},{type({0\n});im({No})}
  114.             ,{Subject},{nexT;im({Yes})}
  115.             ,{たいとる},{nexT;im({Yes})}
  116.             ,{タイトル},{nexT;im({Yes})}
  117.             ,{(読みました)},{DELsyori;im({Yes})}
  118.             ,{(published)},{DELsyori;im({Yes})}
  119.             ,{メッセージは以上です},{type({0\n});im({No})}
  120.             ,{メッセージはありません},{type({0\n});im({No})}
  121.             ,{指定のメールはありません},{type({0\n});im({No})}
  122.             ,{0:quit},{type({0|0\n});im({No})}
  123.             )
  124.         });
  125.     }
  126.     ,{No},{type({T|F|0\n})});
  127.     loop    ({wait    ({3},{im({Yes})}
  128.             ,{メッセージは以上です},{im({No})}
  129.             ,{0:quit},{type({0|0\n});im({No})}
  130.             ,{,?,@,O},{im({No})}
  131.             ,{,?,O},{im({No})}
  132.             ,{メイン},{im({No})}
  133.             ,{メイン},{im({No})}
  134.             ,{MAIN},{im({No})})
  135.         });wait(3);
  136.     };
  137. /*      会員名簿を取得する(ID検索用データ)    */
  138. %ACT    {footnote({会員名簿を調べます。});
  139.     wait(1);type({U\n});
  140.     loop    ({
  141.         wait    ({3},{im({Yes})}
  142.             ,{A,D,M,U,W,Z,?,0},{type({M\n});im({Yes})}
  143.             ,{はじめのIDは?},
  144.             {
  145.             var ProFile[64];
  146.             case    (@nochar(MEMBER),
  147.                 0,{ProFile:=LOG2|{PROFILE\member.lst}},
  148.                 3,{ProFile:=MEMBER},
  149.                 ,{ProFile:=MEMBER}
  150.                 );
  151.             DOWNCHECK;
  152.             footnote({会員名簿を取得します。});dispoff(!DEBUG);
  153.             mkdir2(@body(ProFile,,{\}));delfile(ProFile);
  154.             dispoff({No});type({\n});
  155.             receive(ProFile);
  156.             loop    ({
  157.                 wait    ({3},{im({Yes})}
  158.                     ,{A,D,M,U,W,Z,?,0},
  159.                     {type({0|Q\n});im({Yes})}
  160.                     ,{MAIN},{im({No})}
  161.                     ,{,?,@,O},{im({No})}
  162.                     ,{,?,O},{im({No})}
  163.                     ,{メイン},{im({No})}
  164.                     ,{メイン},{im({No})})
  165.                 });
  166.             wait(3);DOWNSTOP;DOWNSTART;im({No})
  167.             });
  168.         })
  169.     };
  170. /*      アクセスユーザーの確認 & 自動トーク処理    */
  171. %Who{    
  172. /*      自動トーク前処理    */
  173. %preTalk{
  174.     WhoRes:=@read(TEMP2|{_whotext.tmp});
  175.     %ckWho{[IDNo,CMNo]
  176.     var n[2]; n:={0};
  177.     loop    ({    n:=n+1;
  178.         %a    @getline(WhoRes,n,1);
  179.         case    (a={},    
  180.             {Yes},{im({No})},,
  181.             {case    (@head(@getchar(a,6,8),{ })
  182.                 =@head(@getchar(IDNo,1,10),{ }),
  183.                 {Yes},
  184.                 {footnote(IDNo|{を確認しました});
  185.                 sendTalk(@getchar(a,4,1),@getchar(a,15,8),CMNo)
  186.                 },
  187.                 {No},{footnote({取得データの}|n|{行目を「}|
  188.                 IDNo|{」と比較チェックします});im({Yes})}
  189.                 )
  190.             });
  191.         });
  192.     };
  193.     case(TalkID1={},{No},{ckWho(TalkID1,CMt1)});
  194.     case(TalkID2={},{No},{ckWho(TalkID2,CMt2)});
  195.     case(TalkID3={},{No},{ckWho(TalkID3,CMt3)});
  196.     case(TalkID4={},{No},{ckWho(TalkID4,CMt4)});
  197.     case(TalkID5={},{No},{ckWho(TalkID5,CMt5)});
  198.     case(TalkID6={},{No},{ckWho(TalkID6,CMt6)});
  199.     case(TalkID7={},{No},{ckWho(TalkID7,CMt7)});
  200.     case(TalkID8={},{No},{ckWho(TalkID8,CMt8)});
  201.     case(TalkID9={},{No},{ckWho(TalkID9,CMt9)});
  202.     case(TalkID10={},{No},{ckWho(TalkID10,CMt10)});
  203.     case(TalkID11={},{No},{ckWho(TalkID11,CMt11)});
  204.     case(TalkID12={},{No},{ckWho(TalkID12,CMt12)});
  205.     case(TalkID13={},{No},{ckWho(TalkID13,CMt13)});
  206.     case(TalkID14={},{No},{ckWho(TalkID14,CMt14)});
  207.     case(TalkID15={},{No},{ckWho(TalkID15,CMt15)});
  208.     case(TalkID16={},{No},{ckWho(TalkID16,CMt16)});
  209.     case(TalkID17={},{No},{ckWho(TalkID17,CMt17)});
  210.     case(TalkID18={},{No},{ckWho(TalkID18,CMt18)});
  211.     case(TalkID19={},{No},{ckWho(TalkID19,CMt19)});
  212.     case(TalkID20={},{No},{ckWho(TalkID20,CMt20)});
  213.     };
  214. /*      自動トーク処理    */
  215. %sendTalk{[chNo,HanDle,DenPou]
  216.     wait(1);type({T\n});
  217.     loop    ({
  218.         wait    ({3},{im({Yes})},
  219.         {チャンネルを指定して下さい}
  220.         ,{type(chNo|{\n});im({Yes})},
  221.         {トークモードに入りました。}
  222.         ,{    
  223.         %nowhh    @getchar(@daylong,16,2);
  224.     case    (4>=nowhh || nowhh>18,
  225.         {Yes},{type({今晩は、}|HanDle|{さん!\n})},
  226.         {No},{
  227.         case    (10>=nowhh || nowhh>4,
  228.             {Yes},{type({お早ようございます、}
  229.                 |HanDle|{さん!\n})},
  230.             {No},{case    (18>=nowhh || nowhh>10,
  231.                     {Yes},{type({今日は、}
  232.                         |HanDle|{さん!\n})}
  233.                     );
  234.                 });
  235.             });
  236.         type(DenPou|{\n});type({\n//\n});im({Yes})
  237.         },
  238.         {トークモードを終了しました。},{im({Yes})},
  239.         {,?,0},{im({No})},
  240.         {メイン},{im({No})},
  241.         {メイン},{im({No})},
  242.         {MAIN},{im({No})}
  243.             )
  244.         });
  245.     };
  246.     
  247.     DOWNCHECK;delfile(TEMP2|{_whotext.tmp});receive(TEMP2|{_whotext.tmp});
  248.     wait(2);type({W\n});
  249.     footnote({現在}|NET|{-NETにアクセス中のユーザーを確認します});
  250.     loop    ({
  251.         wait    ({3},{im({Yes})},
  252.             {,?,@,O},{DOWNSTOP;im({No})},
  253.             {,?,O},{DOWNSTOP;im({No})}
  254.             )
  255.         });
  256. case    (ESCon={No},
  257.     {No},    {dispoff(!DEBUG);command({escctr -d}|TEMP2|{ -K}|TEMP2|{ }|
  258.         TEMP2|{_whotext.tmp});dispoff({No})
  259.         },,
  260.     );
  261.     DOWNSTART;
  262.     case    (TalkID1={}&&TalkID2={}&&TalkID3={},
  263.         {Yes},{footnote({自動トーク処理は未設定です})},
  264.         {No},
  265.         {case    (@filechk(TEMP2|{_whotext.tmp})={},
  266.             {Yes},
  267.             {footnote({アクセスデータの読み込みに失敗しました})},
  268.             {No},{footnote({自動トーク処理をします});preTalk}
  269.             )
  270.         })
  271.     };
  272. /* 自動トーク反撃処理 */
  273. %BENONres{
  274.  
  275.     };
  276. /*      メンバー全員のプロフィールを見る    */
  277. %ALLPRO{
  278.     type({P|L\n});
  279.     loop    ({
  280.         wait    ({3},{im({Yes})},
  281.             {始めのIDは?},
  282.             {
  283.             footnote({メンバー全員のプロフィールを見に行きます});
  284.             dispoff(!DEBUG);
  285.             mkdir2(LOG2|{PROFILE});
  286.             DOWNCHECK;delfile(LOG2|{PROFILE\profile.dat});
  287.             dispoff({No});type({\n});
  288.             receive(LOG2|{PROFILE\profile.dat});wait(2);
  289.             loop    ({
  290.                 wait    ({3},{im({Yes})},
  291.                     {PROFILE},{type({0\n});im({No})},
  292.                     {,?,0},{type({0\n});im({No})},
  293.                     {メイン},{type({0\n});im({No})},
  294.                     {メイン},{type({0\n});im({No})},
  295.                     {MAIN},{type({0\n});im({No})}
  296.                     )
  297.                 });
  298.             wait(3);DOWNSTOP;DOWNSTART;im({No})
  299.             });
  300.         });
  301.     };
  302. /*ログ記録を見る処理*/
  303. %logDATA{footnote({ログ記録を見に行きます});type({L\n});
  304.     loop    ({
  305.         wait({3},{im({Yes})}
  306.         ,{,?,@,O},{im({No})}
  307.         ,{,?,O},{im({No})})
  308.         })
  309.     };
  310. /*    NETの閲覧可能ボードを見る処理    */
  311. %BALL{    footnote({NETの閲覧可能ボードを見ます。});
  312.     dispoff(!DEBUG);mkdir2(LOG2|{board});
  313.     DOWNCHECK;delfile(LOG2|{board\title.txt});
  314.     dispoff({No});type({B|A\n});
  315.     wait(Wtime2,,{Board title},{receive(LOG2|{board\title.txt})});
  316.     wait(Wtime2,{type({Q\n})}
  317.     ,{,?,Q},{type({Q\n})});DOWNSTOP;wait(2);DOWNSTART};
  318. /*    データライブラリを見る前処理    */
  319. %DATALIB{[lib]
  320.     case    (lib={LIB}||lib={lib},
  321.         {No}, {LIBLIST(lib)},{Yes},{})};
  322. /*    SIGデータライブラリを見る前処理    */
  323. %sDATALIB{[lib]
  324.     case    (lib={LIB}||lib={lib},
  325.         {No}, {sLIBLIST(lib)},{Yes},{})};
  326.  
  327.     /* データライブラリ一覧を見る */
  328. %fDATALIB{dispoff(!DEBUG);mkdir2(LOG2|{DATALIB});
  329.     DOWNCHECK;delfile(LOG2|{DATALIB\}|NET|{DLIB.lst});dispoff({No});
  330.     wait(1);type({\n});
  331.     wait(Wtime2,,{K,N,Z,_,@,A,B,C,E,},{type({F|M\n})}
  332.             ,{A,B,C,D,E,},{type({F|A\n})});
  333.     receive(LOG2|{DATALIB\}|NET|{DLIB.lst});
  334.     wait(Wtime2,{type({Q\n})},{,?,Q},{type({Q\n})});
  335.     DOWNSTOP;wait(2);DOWNSTART};
  336. /*    ライブラリーの最新登録状況を見る共通処理    */
  337.     %LIBprom1{[No,paSS]
  338.     loop({
  339.     wait    ({3},{im({Yes})}
  340.         ,{ボードのグループではありません},
  341.                     {wait(2);type({Q\n});im({No})}
  342.         ,{ボードには入れません},{wait(2);type({Q\n});im({No})}
  343.         ,{ボードが見つかりません},{wait(2);type({Q\n});im({No})}
  344.         ,{検索出来ません},{wait(2);type({0|Q\n});im({No})}
  345.         ,{,H,nn,?,0},{type({L\n});im({Yes})}
  346.         ,{nn,#nn,name,I,A,L,N,S,D,H,?,Q},
  347.         {type({F#}|@head(liblist,{,})|{|N\n});im({Yes})}
  348.         ,{___________},{wait(1);type({\n});
  349.                 DOWNCHECK;var file[64];
  350.                 file:=LOG2|{DATALIB\#}|@head(liblist,{,})
  351.                     |{DLIB.DAT};
  352.                 delfile(file);
  353.             case    (paSS=NET,
  354.                 {Yes},    {
  355.                     write(file,
  356.                     {ファイルボードNo#}|No|{ & パス}
  357.                     |{ワードは設定されていません・・・・・\n});
  358.                     },
  359.                 {No},    {
  360.                     write(file,
  361.                     {ファイルボードNo#}|No|{ & パス}
  362.                     |{ワード}|paSS|{・・・・・です。\n});
  363.                     }
  364.                 );
  365.                 receive(file);
  366.                 LIBprom2;im({No})}
  367.         ,{日付指定},{wait(1);type({92/01/01\n});
  368.             wait    (Wtime2,
  369.                 ,{H,nn,?,0},{type({L\n});im({Yes})}
  370.                 ,{検索します},
  371.                 {DOWNCHECK;
  372.                 receive(LOG2|{DATALIB\#}|@head(liblist,{,})
  373.                     |{DLIB.DAT});
  374.                 LIBprom2;im({No})}
  375.                 );
  376.             });
  377.         });
  378.         };
  379.     %LIBprom2{
  380.     loop    ({
  381.         wait({3}, {im({Yes})}
  382.             ,{FILE},{im({No})}
  383.             ,{quit},{im({No})}
  384.             ,{検索中止},{im({No})}
  385.             ,{検索が終了しました},{im({No})});
  386.         });
  387.         DOWNSTOP;wait({3},{type({0\n})},{>},{type({0\n})});
  388.     loop    ({
  389.         wait(Wtime3,{im({Yes})}
  390.             ,{,?,Q},{wait({3},,{>},{type({Q\n});im({No})})}
  391.             ,{,?,@,O},{wait({3},,{>},{type({\n});im({No})})}
  392.             ,{,?,O},{wait({3},,{>},{type({\n});im({No})})}
  393.             ,{,H,nn,?,0},{wait({3},,{>},{type({0|Q\n});im({No})})});
  394.         });
  395.         };
  396. /*    ライブラリーの最新登録状況を見る処理    */
  397. %LIBLIST{    [lib]
  398.     footnote({LIBの最新登録状況を見ます});liblist:=lib;
  399. loop    ({
  400.         dispoff(!DEBUG);mkdir2(LOG2|{DATALIB});
  401.         delfile(LOG2|{DATALIB\#}|@head(liblist,{,})|{DLIB.DAT});
  402.         type({F#}|@head(liblist,{,})|{\n});dispoff({No});
  403.         LIBprom1(@head(liblist,{,}),NET);
  404.     liblist:=@body(liblist,{,});
  405.     case    (liblist={},
  406.         {Yes},{im({No})},
  407.         {No},{im({Yes})}
  408.         );
  409.     });
  410.     DOWNSTART
  411.     };
  412. /*    SIGライブラリーの最新登録状況を見る処理    */
  413. %sLIBLIST{    [lib]
  414.     footnote({LIBの最新登録状況を見ます});liblist:=lib;
  415. loop    ({
  416.         dispoff(!DEBUG);mkdir2(LOG2|{DATALIB});
  417.         delfile(LOG2|{DATALIB\#}|@head(liblist,{,})|{DLIB.DAT});
  418.         type({F#}|@head(liblist,{,})|{|}|Spasswd|{\n});dispoff({No});
  419.         LIBprom1(@head(liblist,{,}),Spasswd);
  420.     liblist:=@body(liblist,{,});
  421.     case    (liblist={},
  422.         {Yes},{im({No})},
  423.         {No},{im({Yes})}
  424.         );
  425.     });
  426.     DOWNSTART
  427.     };
  428. /************************************************************************
  429. *    ボード処理の定義                        *
  430. *    Forum({ネット名},{ボード番号リスト},{ライブラリ番号リスト})            *
  431. *        ボード番号リストで指定された会議室の未読を読み        *
  432. *        ライブラリ番号リストが指定されていればデータライブラリをちらっと見る    *
  433. *************************************************************************/
  434. /****** ボート未読共通処理 *******/
  435. %BODprom1{
  436.     loop    ({
  437.         wait    ({3},{im({Yes})}
  438.             ,{ボードが見つかりません},{type({N\n});im({No})}
  439.             ,{そのボードには入れません},{type({Q\n});im({No})}
  440.             ,{そのボードのグループではありません},
  441.             {type({Q\n});im({No})}
  442.             ,{パスワードが違います},{type({Q\n});im({No})}
  443.             ,{連続で読みますか?},
  444.             {type({Y\n});type(mPOINT|{\n});BODprom2;im({No})}
  445.             ,{YY/MM/DD},{type(mPOINT|{\n});BODprom2;im({No})}
  446.             ,{[RET]},{type(mPOINT|{\n});BODprom2;im({No})}
  447.             ,{ESCカットしますか?},
  448.             {type({N\n});wait(Wtime1,,{NEWS},{type({\n})});
  449.             wait(Wtime2,,{0:quit},{type({0\n})});BODprom2;im({No})
  450.             });
  451.         });
  452.     };
  453. %BODprom2{
  454.     loop    ({
  455.         wait    ({3},{im({Yes})}
  456.             ,{,?,Q},{type({Q\n});im({No})}
  457.             ,{ボードが見つかりません},{type({N|Q\n});im({No})}
  458.             ,{メッセージが見つからない},{type({0|Q\n});im({No})}
  459.             ,{メッセージが見つかりません},{type({0|Q\n});im({No})}
  460.             ,{,H,nn,?,0},{type({0|Q\n});im({No})}
  461.             ,{次ね},{type({F\n});
  462.             loop    ({
  463.                 wait({3},{im({Yes})}
  464.                 ,{メッセージは以上},{type({0|Q\n});im({No})});
  465.                 });im({No})
  466.                 }
  467.             ,{next},{type({F\n});
  468.             loop    ({
  469.                 wait({3},{im({Yes})}
  470.                 ,{メッセージは以上},{type({0|Q\n});im({No})});
  471.                 });im({No})
  472.                 });
  473.         });
  474.     };
  475. /* ボードを指定した場合の処理 */
  476. %GOBOAD    {[fname,boadlist,lib]
  477.     footnote(fname|{をダウンロードしています});MESREAD(boadlist);
  478.     case(lib<>{},{Yes},{DATALIB(lib)});
  479.     case(@filechk(LOG2|{DATALIB\}|NET|{DLIB.lst}),
  480.     {No},{fDATALIB})};
  481. /* SIGボードを指定した場合の処理 */
  482. %GOSIG    {[fname,Sboadlist,Spasswd,lib]
  483.     footnote(fname|{のSIGボードNo.#}|Sboadlist|{をダウンロードします});
  484.     SMESREAD(Sboadlist,Spasswd);
  485.     case(lib<>{},{Yes},{sDATALIB(lib)});
  486.     };
  487. /*    ボードの未読を全部読む    */
  488. %MESREAD{    [boadlist]    var boadNo[60];boadNo:=boadlist;
  489.     case    (boadNo<>{},{Yes},{
  490.     case(boadNo={all}||boadNo={ALL},
  491.     {No},{footnote({指定された各ボードの発言をダウンします});
  492.     loop    ({case    (boadNo={},{Yes},{im({No})},
  493.         {No},{
  494.         wait(1);type({B#}|@head(boadNo,{,})|{|N\n});
  495.         BODprom1;boadNo:=@body(boadNo,{,});im({Yes});
  496.         footnote({続いてボードNo}|boadNo|{の発言のログをダウンします});
  497.             });
  498.         });
  499.     },
  500.     {Yes},{footnote({各ボードの発言を全てダウンします});type({BN|Y\n});
  501.     wait(Wtime2,
  502.     ,{NEWS},{type(mPOINT|{\n})}
  503.     ,{[RET]},{type(mPOINT|{\n})}
  504.     ,{ESCカットしますか?}
  505.         ,{type({N\n});wait(Wtime1,,{NEWS},{type(mPOINT|{\n})});});
  506.     loop    ({
  507.         wait({3},{im({Yes})}
  508.         ,{終わったよ},{wait(1);type({Q\n});im({No})}
  509.         ,{検索が終了しました},{wait(1);type({Q\n});im({No})})
  510.         });wait(1);
  511.     })});
  512.     footnote({各ボードの発言のログをダウンしました})};
  513. /*    SIGボードの未読を読む    */
  514. %SMESREAD{    [Sboadlist,Spasswd]    var boadNo[40];boadNo:=Sboadlist;
  515.     case    (boadNo<>{},{Yes},{
  516.     footnote({指定された各SIGボードの発言をダウンします});
  517.     loop    ({
  518.     case    (boadNo={}||boadNo={all}||boadNo={ALL},{Yes},{im({No})},
  519.         {No},{
  520.         wait(1);type({B#}|@head(boadNo,{,})|{|}|Spasswd|{\n});
  521.         type({B#}|@head(boadNo,{,})|{|N\n});
  522.         BODprom1;boadNo:=@body(boadNo,{,});im({Yes});
  523.         footnote({続いてボードNo}|boadNo|{の発言のログをダウンします});
  524.             });
  525.         });
  526.         });
  527.     footnote({各ボードの発言のログをダウンしました})
  528.     };
  529. /*    自動通信処理    */
  530. %DOrtbbs{    var DATE[24];var n[3];var b[2];
  531.     case(@filechk(LOG2|{board\title.txt}),{No},{BALL});
  532.     %rtbbs1    {case    (@nth(a,1,{/}),
  533.             {ボード},
  534.             {GOBOAD(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/}))},
  535.             {SIGボード},
  536.             {GOSIG(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/})
  537.                             ,@nth(a,6,{/}))})
  538.         };
  539.     DATE:=@getdt;    n:=0;
  540.     loop    ({    n:=n+1;
  541.         %a    @getline(TGK,n,1);
  542.         case    (a={},{Yes},{im({No})},,
  543.             {case    (@nth(a,2,{/}),
  544.                 {毎日},rtbbs1,
  545.                 {奇数},{case    (@getchar(DATE,10,1),
  546.                     {1},rtbbs1,{3},rtbbs1,{5},rtbbs1,
  547.                     {7},rtbbs1,{9},rtbbs1)},
  548.                 {偶数},{case    (@getchar(DATE,10,1),
  549.                     {0},rtbbs1,{2},rtbbs1,{4},rtbbs1,
  550.                     {6},rtbbs1,{8},rtbbs1)},
  551.                 ,{case    (@getchar(@nth(a,2,{/}),1,2),
  552.                     @getchar(DATE,13,2),rtbbs1,/* 曜日 */
  553.                     @getchar(DATE,9,2),rtbbs1,/* 日付 */
  554.                     {複},    {b:=2;
  555.                         loop({
  556.                         case(@nth(@nth(a,2,{/}),b,{,}),
  557.                         @getchar(DATE,13,2),
  558.                         {rtbbs1;im({No})},
  559.                         @getchar(DATE,9,2),
  560.                         {rtbbs1;im({No})},
  561.                         {奇},
  562.                         {case(@getchar(DATE,10,1),
  563.                             {1},{rtbbs1;im({No})},
  564.                             {3},{rtbbs1;im({No})},
  565.                             {5},{rtbbs1;im({No})},
  566.                             {7},{rtbbs1;im({No})},
  567.                             {9},{rtbbs1;im({No})})},
  568.                         {偶},
  569.                         {case(@getchar(DATE,10,1),
  570.                             {0},{rtbbs1;im({No})},
  571.                             {2},{rtbbs1;im({No})},
  572.                             {4},{rtbbs1;im({No})},
  573.                             {6},{rtbbs1;im({No})},
  574.                             {8},{rtbbs1;im({No})})},
  575.                         {終わり},
  576.                         {im({No})},
  577.                         ,{b:=b+1;im({Yes})});
  578.                         });
  579.                         }
  580.                     )}
  581.                 );
  582.             im({Yes});
  583.             });
  584.         });
  585.     };
  586. /*    自動通信処理    */
  587.     DOWNSTART;CHeck:={Yes};
  588.     case(@filechk(LOG2|{アクセスdat\ゾクセイ.DAT})={Yes}&&ESCon={Yes}||
  589.         @filechk(LOG2|{アクセスdat\ゾクセイ.DAT})={Yes}&&
  590.         @filechk(LOG2|{アクセスdat\ゾクセイoff.DAT})={Yes}||
  591.         @filechk(LOG2|{アクセスdat\ゾクセイ.DAT})={Yes}&&ESCon={}||                @filechk(LOG2|{アクセスdat\ゾクセイoff.DAT})={Yes}&&ESCon={No},
  592.     {Yes},{},{No},{footnote({端末属性を設定しています});ZOKU;
  593.     footnote({})});
  594.     case(MAILRED={Yes}||MAILDEL={Yes},{Yes},{NEWMAILL});
  595.     case(WHO={first},{Yes},{Who});case(PLTmemo={Yes},{Yes},{PLTMEMO});
  596.     case(@filechk(UP|{\DENGO}),
  597.     {Yes},{DENGONW},{No},{case(JISAR={Yes},{Yes},{DENGON},{No},{})});
  598.     case(DORTBBS={Yes},{Yes},{DOrtbbs});
  599.     case(WHO={last},{Yes},{Who});case(MACTIV={Yes},{Yes},{ACT});
  600.     case(BDLIST={Yes},{Yes},{BALL});case(DLLIST={Yes},{Yes},{fDATALIB});
  601.     case(allPRO={Yes},{Yes},{ALLPRO});case(LGLOOK={ 1},{Yes},{logDATA});
  602.     wait(2);DOWNSTOP;